#pragma once

#include "TileManager.h"
#include "EntityManager.h"
#include "Entity.h"
#include "Settings.h"

class World
{
public:
	World();
	World(sf::RenderWindow* window);
	~World();

	void Update(uint16 diff);
	inline TileManager& GetTileMgr() { return m_tileManager; }
	inline EntityManager& GetEntityMgr() { return m_entityManager; }
	inline Settings& GetSettings() { return m_settings; }	//will store server ip? etc..
	inline void SetWindow(sf::RenderWindow* window) { m_window = window; m_tileManager.SetWindow(window);}

private:
	TileManager m_tileManager;
	sf::RenderWindow* m_window;
	EntityManager m_entityManager;
	Settings m_settings;
	//vector<Player*> m_otherPlayers;
	//Player* m_currentPlayer;
};

